class Solution {
public:
    int uniquePaths(int m, int n) {
        vector<vector<int>> dp(m+1,vector<int>(n+1));//在初始化数组时多开一列和一行，正确地初始化他们就可以避免处理边界情况
        dp[0][1]=1;//只需要将边界的该格初始化为1,其他都初始化为0即可
        for(int i=1;i<m+1;i++){
            for(int j=1;j<n+1;j++){
                dp[i][j]=dp[i-1][j]+dp[i][j-1];//抵达当前格子的情况种数为：抵达该格左边情况数+抵达该格上面情况数。
            }
        }
        return dp[m][n];
    }
};
